 package com.bmps.springcloud.insuredmicroservice.model.accept.resquest;

 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;

 import javax.validation.Valid;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;

 /**
  *  @author lyw
  *  @date 2019/07/24
  */
 public class ProductInfoModel implements Serializable {

     @NotBlank(message="newPayMode字段不能为空!")
	 private String newPayMode;

     @NotBlank(message="payMode字段不能为空!")
	 private String payMode;

     @NotNull(message="sumPremL字段不能为空!")
	 private BigDecimal sumPremL;

     @NotNull(message="payPremL字段不能为空!")
	 private BigDecimal payPremL;

	 private BigDecimal offPrem;

     @NotBlank(message="payIntv字段不能为空!")
	 private String payIntv;

	 private String bonusGetMode;

     @NotBlank(message="rnewFlag字段不能为空!")
	 private String rnewFlag;

	 private Integer getYear;

	 private String getDutyKind;

	 private String getYears;

	 private String getDutyKindMQ;

	 private String getYearsMQ;

     @NotBlank(message="autoPayFlag字段不能为空!")
	 private String autoPayFlag;

	 private String getForm;

	 private String insuBankCode;

	 private String insuBankAccNo;

	 private String insuBankAccName;

	 private String newBankCode;

	 private String newBankAccNo;

	 private String newBankAccName;

	 private String bankCode;

	 private String bankAccNo;

	 private String bankAccName;
     @Valid
     @NotNull(message="products节点不能为空!")
	 private ProductsModel products;

	 private String invAccTimeOption;

	 private InvAccRatiosModel invAccRatios;

     public String getNewPayMode() {
         return newPayMode;
     }

     public void setNewPayMode(String newPayMode) {
         this.newPayMode = newPayMode;
     }

     public String getPayMode() {
         return payMode;
     }

     public void setPayMode(String payMode) {
         this.payMode = payMode;
     }

     public BigDecimal getSumPremL() {
         return sumPremL;
     }

     public void setSumPremL(BigDecimal sumPremL) {
         this.sumPremL = sumPremL;
     }

     public BigDecimal getPayPremL() {
         return payPremL;
     }

     public void setPayPremL(BigDecimal payPremL) {
         this.payPremL = payPremL;
     }

     public BigDecimal getOffPrem() {
         return offPrem;
     }

     public void setOffPrem(BigDecimal offPrem) {
         this.offPrem = offPrem;
     }

     public String getPayIntv() {
         return payIntv;
     }

     public void setPayIntv(String payIntv) {
         this.payIntv = payIntv;
     }

     public String getBonusGetMode() {
         return bonusGetMode;
     }

     public void setBonusGetMode(String bonusGetMode) {
         this.bonusGetMode = bonusGetMode;
     }

     public String getRnewFlag() {
         return rnewFlag;
     }

     public void setRnewFlag(String rnewFlag) {
         this.rnewFlag = rnewFlag;
     }

     public Integer getGetYear() {
         return getYear;
     }

     public void setGetYear(Integer getYear) {
         this.getYear = getYear;
     }

     public String getGetDutyKind() {
         return getDutyKind;
     }

     public void setGetDutyKind(String getDutyKind) {
         this.getDutyKind = getDutyKind;
     }

     public String getGetYears() {
         return getYears;
     }

     public void setGetYears(String getYears) {
         this.getYears = getYears;
     }

     public String getGetDutyKindMQ() {
         return getDutyKindMQ;
     }

     public void setGetDutyKindMQ(String getDutyKindMQ) {
         this.getDutyKindMQ = getDutyKindMQ;
     }

     public String getGetYearsMQ() {
         return getYearsMQ;
     }

     public void setGetYearsMQ(String getYearsMQ) {
         this.getYearsMQ = getYearsMQ;
     }

     public String getAutoPayFlag() {
         return autoPayFlag;
     }

     public void setAutoPayFlag(String autoPayFlag) {
         this.autoPayFlag = autoPayFlag;
     }

     public String getGetForm() {
         return getForm;
     }

     public void setGetForm(String getForm) {
         this.getForm = getForm;
     }

     public String getInsuBankCode() {
         return insuBankCode;
     }

     public void setInsuBankCode(String insuBankCode) {
         this.insuBankCode = insuBankCode;
     }

     public String getInsuBankAccNo() {
         return insuBankAccNo;
     }

     public void setInsuBankAccNo(String insuBankAccNo) {
         this.insuBankAccNo = insuBankAccNo;
     }

     public String getInsuBankAccName() {
         return insuBankAccName;
     }

     public void setInsuBankAccName(String insuBankAccName) {
         this.insuBankAccName = insuBankAccName;
     }

     public String getNewBankCode() {
         return newBankCode;
     }

     public void setNewBankCode(String newBankCode) {
         this.newBankCode = newBankCode;
     }

     public String getNewBankAccNo() {
         return newBankAccNo;
     }

     public void setNewBankAccNo(String newBankAccNo) {
         this.newBankAccNo = newBankAccNo;
     }

     public String getNewBankAccName() {
         return newBankAccName;
     }

     public void setNewBankAccName(String newBankAccName) {
         this.newBankAccName = newBankAccName;
     }

     public String getBankCode() {
         return bankCode;
     }

     public void setBankCode(String bankCode) {
         this.bankCode = bankCode;
     }

     public String getBankAccNo() {
         return bankAccNo;
     }

     public void setBankAccNo(String bankAccNo) {
         this.bankAccNo = bankAccNo;
     }

     public String getBankAccName() {
         return bankAccName;
     }

     public void setBankAccName(String bankAccName) {
         this.bankAccName = bankAccName;
     }

     public ProductsModel getProducts() {
         return products;
     }

     public void setProducts(ProductsModel products) {
         this.products = products;
     }

     public String getInvAccTimeOption() {
         return invAccTimeOption;
     }

     public void setInvAccTimeOption(String invAccTimeOption) {
         this.invAccTimeOption = invAccTimeOption;
     }

     public InvAccRatiosModel getInvAccRatios() {
         return invAccRatios;
     }

     public void setInvAccRatios(InvAccRatiosModel invAccRatios) {
         this.invAccRatios = invAccRatios;
     }

     @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
         }

         if (o == null || getClass() != o.getClass()) {
             return false;
         }

         ProductInfoModel that = (ProductInfoModel) o;

         return new EqualsBuilder()
                 .append(newPayMode, that.newPayMode)
                 .append(payMode, that.payMode)
                 .append(sumPremL, that.sumPremL)
                 .append(payPremL, that.payPremL)
                 .append(offPrem, that.offPrem)
                 .append(payIntv, that.payIntv)
                 .append(bonusGetMode, that.bonusGetMode)
                 .append(rnewFlag, that.rnewFlag)
                 .append(getYear, that.getYear)
                 .append(getDutyKind, that.getDutyKind)
                 .append(getYears, that.getYears)
                 .append(getDutyKindMQ, that.getDutyKindMQ)
                 .append(getYearsMQ, that.getYearsMQ)
                 .append(autoPayFlag, that.autoPayFlag)
                 .append(getForm, that.getForm)
                 .append(insuBankCode, that.insuBankCode)
                 .append(insuBankAccNo, that.insuBankAccNo)
                 .append(insuBankAccName, that.insuBankAccName)
                 .append(newBankCode, that.newBankCode)
                 .append(newBankAccNo, that.newBankAccNo)
                 .append(newBankAccName, that.newBankAccName)
                 .append(bankCode, that.bankCode)
                 .append(bankAccNo, that.bankAccNo)
                 .append(bankAccName, that.bankAccName)
                 .append(products, that.products)
                 .append(invAccTimeOption, that.invAccTimeOption)
                 .append(invAccRatios, that.invAccRatios)
                 .isEquals();
     }

     @Override
     public int hashCode() {
         return new HashCodeBuilder(17, 37)
                 .append(newPayMode)
                 .append(payMode)
                 .append(sumPremL)
                 .append(payPremL)
                 .append(offPrem)
                 .append(payIntv)
                 .append(bonusGetMode)
                 .append(rnewFlag)
                 .append(getYear)
                 .append(getDutyKind)
                 .append(getYears)
                 .append(getDutyKindMQ)
                 .append(getYearsMQ)
                 .append(autoPayFlag)
                 .append(getForm)
                 .append(insuBankCode)
                 .append(insuBankAccNo)
                 .append(insuBankAccName)
                 .append(newBankCode)
                 .append(newBankAccNo)
                 .append(newBankAccName)
                 .append(bankCode)
                 .append(bankAccNo)
                 .append(bankAccName)
                 .append(products)
                 .append(invAccTimeOption)
                 .append(invAccRatios)
                 .toHashCode();
     }

     @Override
     public String toString() {
         return "ResponseProductInfoModel{" +
                 "newPayMode='" + newPayMode + '\'' +
                 ", payMode='" + payMode + '\'' +
                 ", sumPremL=" + sumPremL +
                 ", payPremL=" + payPremL +
                 ", offPrem=" + offPrem +
                 ", payIntv='" + payIntv + '\'' +
                 ", bonusGetMode='" + bonusGetMode + '\'' +
                 ", rnewFlag='" + rnewFlag + '\'' +
                 ", getYear=" + getYear +
                 ", getDutyKind='" + getDutyKind + '\'' +
                 ", getYears='" + getYears + '\'' +
                 ", getDutyKindMQ='" + getDutyKindMQ + '\'' +
                 ", getYearsMQ='" + getYearsMQ + '\'' +
                 ", autoPayFlag='" + autoPayFlag + '\'' +
                 ", getForm='" + getForm + '\'' +
                 ", insuBankCode='" + insuBankCode + '\'' +
                 ", insuBankAccNo='" + insuBankAccNo + '\'' +
                 ", insuBankAccName='" + insuBankAccName + '\'' +
                 ", newBankCode='" + newBankCode + '\'' +
                 ", newBankAccNo='" + newBankAccNo + '\'' +
                 ", newBankAccName='" + newBankAccName + '\'' +
                 ", bankCode='" + bankCode + '\'' +
                 ", bankAccNo='" + bankAccNo + '\'' +
                 ", bankAccName='" + bankAccName + '\'' +
                 ", products=" + products +
                 ", invAccTimeOption='" + invAccTimeOption + '\'' +
                 ", invAccRatios=" + invAccRatios +
                 '}';
     }
 }
